package com.company;

public class string {
    public static void main(String args[]){
        char[] helloArr = {'r','u','n','o','o','b'};
        String helloStr = new String(helloArr);
        System.out.println(helloStr);
        // 注意:String 类是不可改变的，所以你一旦创建了 String 对象，那它的值就无法改变了

        // 获取字符串长度
        String site = "www.runoob.com";
        int len = site.length();
        System.out.println("菜鸟教程网址的长度:" + len);


        // 链接字符串
        System.out.println("我的名字是".concat("Ken"));
        System.out.println("我的名字是" + "李金文");

        // 格式化字符串
        System.out.printf("浮点型变量的值为 " +
                "%f, 整型变量的值为 " +
                " %d, 字符串变量的值为 " +
                "is %s", 20.0f, 10, "Ken");

        String fs;
        fs = String.format("浮点型变量的值为 " +
                "%f, 整型变量的值为 " +
                " %d, 字符串变量的值为 " +
                "is %s", 20.0f, 10, "Ken");
        System.out.println("fs: " + fs);

        // charAt
        // charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
        char result = site.charAt(8);
        System.out.println("result : " + result);

        // endWith
        // endsWith() 方法用于测试字符串是否以指定的后缀结束。
        boolean b = site.endsWith("run");
        System.out.println("b: " + b);

        // equals
        // equals() 方法用于将字符串与指定的对象比较。
        String str1 = new String("runoob");
        String str2 = new String("sunoob");
        boolean bb = str1.equals(str2);
        System.out.println("bb: " + bb);

        // hashCode
        String Str = new String("www.runoob.com");
        System.out.println("字符串的哈希码为 :" + Str.hashCode() );


        //  indexOf
        String string = "aaa456ac";
        //查找指定字符是在字符串中的下标。在则返回所在字符串下标；不在则返回-1.
        System.out.println(string.indexOf("b")); // indexOf(String str); 返回结果：-1，"b"不存在

        // 从第四个字符位置开始往后继续查找，包含当前位置
        System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex); 返回结果：6

        //（与之前的差别：上面的参数是 String 类型，下面的参数是 int 类型）参考数据：a-97,b-98,c-99

        // 从头开始查找是否存在指定的字符
        System.out.println(string.indexOf(99));//indexOf(int ch)；返回结果：7
        System.out.println(string.indexOf('c'));//indexOf(int ch)；返回结果：7

        //从fromIndex查找ch，这个是字符型变量，不是字符串。字符a对应的数字就是97。
        System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex); 返回结果：6
        System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex); 返回结果：6

    }
}
